#ifndef OCK_MEMORY_BRIDGE_OCK_ACLADAPTER_OCK_MEMORY_MALLOC_PARAM_H
#define OCK_MEMORY_BRIDGE_OCK_ACLADAPTER_OCK_MEMORY_MALLOC_PARAM_H
#include <ostream>
#include "ock/acladapter/executor/OckAsyncTaskBase.h"

namespace ock {
namespace acladapter {

class OckMemoryMallocParam : public OckAsyncTaskParamBase
{

public:
    OckMemoryMallocParam(void **ptrAddr, size_t byteSize, hmm::OckHmmHeteroMemoryLocation location);
    virtual ~OckMemoryMallocParam() noexcept = default;
    void *PtrAddr(void);
    size_t Size(void) const;
    hmm::OckHmmHeteroMemoryLocation location(void) const;

private:
    void **ptrAddr;
    size_t byteSize;
    hmm::OckHmmHeteroMemoryLocation location;
};

std::ostream &operator<<(std::ostream &os, const OckMemoryMallocParam &param);

}
}
#endif